home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1993 / MacHack 1993.toast / MacHack™ 1987-1992 / MacHack™ '90 / Utilities ƒ / MPW Tools ƒ / Simula4.07 / Simula 4.07ƒ / SInterfaces / macControl.sim < prev    next >
Encoding:
Text File  |  1989-05-01  |  6.0 KB  |  193 lines  |  [TEXT/MPS ]

  1. % ---------------------------------------------------------------------------
  2. %    Class MACControl
  3. %
  4. % In this module you find the programmers interface to Controls.
  5. % It is built on top of the TOOLBOX routines in TOOLBOXControl.
  6. % For a description of the routines see Inside Macintosh, chapter 10.
  7. %
  8. % 890317/Boris Magnusson
  9. % 890408/Göran Eriksson
  10. %
  11. % ---------------------------------------------------------------------------
  12. %    Datastructures used by the Control Manager
  13. %
  14. %    ControlPtr = ^ControlRecord;
  15. %
  16. %    ControlRecord = PACKED RECORD
  17. %                    nextControl: ControlHandle;
  18. %                    contrlOwner: WindowPtr;
  19. %                    contrlRect: Rect;
  20. %                    contrlVis: Byte;
  21. %                    contrlHilite: Byte;
  22. %                    contrlValue: INTEGER;
  23. %                    contrlMin: INTEGER;
  24. %                    contrlMax: INTEGER;
  25. %                    contrlDefProc: Handle;
  26. %                    contrlData: Handle;
  27. %                    contrlAction: ProcPtr;
  28. %                    contrlrfCon: LONGINT;
  29. %                    contrlTitle: Str255;
  30. %                    END; {ControlRecord}
  31. external text procedure Text_String="::SInterfaces:Text_String";
  32. external text procedure String_Text="::SInterfaces:String_Text";
  33. external class MacPoint="::SInterfaces:MacPoint";
  34. external class MacRect="::SInterfaces:MacRect";
  35. external class MacWindow="::SInterfaces:MacWindow";
  36. External class ToolboxControl ="::SInterfaces:ToolboxControl";
  37. ToolboxControl class Maccontrol;
  38. begin
  39.     integer ControlPtr;
  40.     
  41. %    FUNCTION NewControl(curWindow: WindowPtr; boundsRect: Rect; title: Str255;
  42. %                    visible: BOOLEAN; value: INTEGER; min: INTEGER;
  43. %                    max: INTEGER; contrlProc: INTEGER;
  44. %                    refCon: LONGINT): ControlHandle;
  45.     PROCEDURE NewControl(curWindow, boundsRect, title,
  46.                     visible, x_value, min, max, contrlProc,refCon);
  47.                     ref(MacWindow) curWindow;
  48.                     ref(MacRect) boundsRect;
  49.                     text title;
  50.                     boolean visible;
  51.                     short integer x_value, min, max;
  52.                     short integer contrlProc;
  53.                     integer refCon;
  54.             begin
  55.                 text temp;
  56.                 temp:-text_string(title);
  57.                  ControlPtr:=ToolboxNewControl(curWindow.WindowPtr, 
  58.                      boundsRect.top, temp,visible, x_value, min, max, 
  59.                     contrlProc,refCon);
  60.             end;
  61.  
  62. %    FUNCTION GetNewControl(controlID: INTEGER; owner: WindowPtr): ControlHandle;
  63.     procedure GetNewControl( controlID, owner);
  64.         short integer controlID;
  65.         integer owner;
  66.         begin
  67.             ControlPtr:=ToolboxGetNewControl(controlID, owner);
  68.         end;
  69.  
  70. %    PROCEDURE MoveControl(theControl: ControlHandle; h, v: INTEGER);
  71.     PROCEDURE MoveControl( h, v);
  72.         short integer h,v;
  73.         ToolboxMoveControl(ControlPtr, h, v);
  74.  
  75. %    PROCEDURE SizeControl(theControl: C        buildtoolbox, h: INTEGER);
  76.     PROCEDURE SizeControl( w, h);
  77.         short integer h,w;
  78.         ToolboxSizeControl(ControlPtr,  w, h);
  79.  
  80. %    PROCEDURE DragControl(theControl: ControlHandle; startPt: Point; bounds: Rect;
  81. %                    slopRect:rect, axis:integer);
  82.     PROCEDURE DragControl(startPt, bounds,
  83.                     slopRect, axis);
  84.                     name bounds, slopRect;             
  85.                     ref(MacPoint) startPt;
  86.                     ref(MacRect) bounds, slopRect;
  87.                     short integer axis;
  88.                 begin
  89.                     ref(MacRect) LocalBounds,LocalSlopRect;
  90.                     LocalBounds:-Bounds;
  91.                     LocalSlopRect:-SlopRect;
  92.                     ToolboxDragControl(ControlPtr, startPt.h, StartPt.v,
  93.                             LocalBounds.Top, LocalSlopRect.Top, axis);;
  94.                     Bounds:-LocalBounds;
  95.                     SlopRect:-LocalSlopRect;
  96.                 end;
  97.                     
  98. %    PROCEDURE ShowControl(theControl: ControlHandle);
  99.     PROCEDURE ShowControl;
  100.          ToolboxShowControl(ControlPtr);
  101.  
  102. %    PROCEDURE HideControl(theControl: ControlHandle);
  103.     PROCEDURE HideControl;
  104.         ToolboxHideControl(ControlPtr);
  105.  
  106. %    PROCEDURE SetCTitle(theControl: ControlHandle; title: Str255);
  107.     PROCEDURE SetCTitle(title);
  108.         text title;
  109.         begin
  110.             text temp;
  111.             temp:-Text_String(title);
  112.             ToolboxSetCTitle(ControlPtr, temp);
  113.         end;
  114.  
  115. %    PROCEDURE GetCTitle(theControl: ControlHandle; VAR title: Str255);
  116.     PROCEDURE GetCTitle( title);
  117.         name title;
  118.         text title;
  119.         begin
  120.             text temp;
  121.             temp:-Text_String(title);
  122.             ToolboxGetCTitle(ControlPtr, temp);
  123.             title:-String_Text(Temp);
  124.         end;
  125.  
  126. %    PROCEDURE HiliteControl(theControl: ControlHandle; hiliteState: INTEGER);
  127.     PROCEDURE HiliteControl(hiliteState);
  128.         short integer hiliteState;
  129.         ToolboxHiliteControl(ControlPtr, hiliteState);
  130.  
  131. %    PROCEDURE SetCRefCon(theControl: ControlHandle; data: LONGINT);
  132.     PROCEDURE SetCRefCon( data);
  133.         integer data;
  134.         ToolboxSetCRefCon(ControlPtr, data);
  135.  
  136. %    FUNCTION GetCRefCon(theControl: ControlHandle): LONGINT;
  137.     integer procedure GetCRefCon;
  138.         GetCRefCon:=ToolboxGetCRefCon(ControlPtr);
  139.  
  140. %    PROCEDURE SetCtlValue(theControl: ControlHandle; theValue: INTEGER);
  141.     PROCEDURE SetCtlValue(theValue);
  142.         short integer theValue;
  143.         ToolboxSetCtlValue(ControlPtr, theValue);
  144.  
  145. %    FUNCTION GetCtlValue(theControl: ControlHandle): INTEGER;
  146.     short integer procedure GetCtlValue;
  147.         GetCtlValue:=ToolboxGetCtlValue(ControlPtr);
  148.  
  149. %    FUNCTION GetCtlMin(theControl: ControlHandle): INTEGER;
  150.     short integer procedure GetCtlMin;
  151.         GetCtlMin:=ToolboxGetCtlMin(ControlPtr);
  152.  
  153. %    FUNCTION GetCtlMax(theControl: ControlHandle): INTEGER;
  154.     short integer procedure GetCtlMax;
  155.         GetCtlMax:=ToolboxGetCtlMax(ControlPtr);
  156.  
  157. %    PROCEDURE SetCtlMin(theControl: ControlHandle; theValue: INTEGER);
  158.     PROCEDURE SetCtlMin(theValue);
  159.         short integer theValue;
  160.         ToolboxSetCtlMin(ControlPtr, theValue);
  161.  
  162. %    PROCEDURE SetCtlMax(theControl: ControlHandle; theValue: INTEGER);
  163.     PROCEDURE SetCtlMax(theValue);
  164.         short integer theValue;
  165.         ToolboxSetCtlMax(ControlPtr, theValue);
  166.  
  167. %    FUNCTION GetCtlAction(theControl: ControlHandle): ProcPtr;
  168.     integer procedure GetCtlAction;
  169.         GetCtlAction:=ToolboxGetCtlAction(ControlPtr);
  170.  
  171.  
  172. %    PROCEDURE SetCtlAction(theControl: ControlHandle; newProc: ProcPtr);
  173.     PROCEDURE SetCtlAction(newProc);
  174.             integer newProc;
  175.             ToolboxSetCtlAction(ControlPtr, newProc);
  176.  
  177.  
  178. %    FUNCTION TestControl(theControl: ControlHandle; thePt: Point): INTEGER;
  179.     short integer procedure TestControl(thePt);
  180.             ref(MacPoint) thePt;
  181.             TestControl:=ToolboxTestControl(ControlPtr, thePt.h, thePt.v);
  182.  
  183. %    FUNCTION TrackControl(theControl: ControlHandle; thePt: Point;
  184. %                    actionProc: ProcPtr): INTEGER;
  185.     short integer procedure TrackControl(thePt, actionProc);
  186.             ref(MacPoint) thePt;
  187.             integer actionProc;
  188.             TrackControl:=ToolboxTrackControl(ControlPtr,thePt.h,thePt.v,
  189.                     actionProc);;
  190.             
  191.         
  192.  
  193. end;